1. Field
The subject matter disclosed herein relates to a method of communication protocol negotiation between a terminal and a network entity, such as negotiation of a Secure User Plane (SUPL) version between a SUPL enabled terminal and a network entity.
2. Information
The Secure User Plane Location (SUPL) specifications produced by the Open Mobile Alliance (OMA) enable a client application, i.e., a SUPL Agent, to obtain the geographic location of a wireless terminal, i.e., a SUPL Enabled Terminal (SET). They also enable a SET to obtain its own location and the locations of other SETs and to transfer its location to a selected SUPL Agent. Currently, two versions of SUPL are defined in OMA specifications—SUPL version 1.0, which is now fully approved as an OMA Enabler, and SUPL version 2.0. SUPL 1.0 supports many positioning methods but provides only basic location capabilities. SUPL 2.0, on the other hand, contains many more location capabilities including support for periodic, triggered and historic location. It is possible that other versions of SUPL may eventually be developed that would support even more location services.
In order to support a particular location service using SUPL, a SUPL session is typically started between a SET and a SUPL network entity known as a SUPL Location Platform (SLP). For each type of location service, an initial SUPL message is typically sent either from the SET to the SLP or from the SLP to the SET. The message typically includes the version of SUPL intended for the session by the sender. In SUPL, the version may be characterized by a major version number and a minor version number. For example, in SUPL version 1.0, the major version number is “1” and the minor version is “0.” In SUPL 2.0, the major version number is “2” and the minor version number is “0.” There may also be a third level of SUPL version number, known as a service indicator, appearing after major and minor version numbers. For example, in SUPL version 2.1.0, the major version number is “2,” the minor version number is “1,” and the service indicator is “0.” All three version numbers (major, minor and service indicator) may be conveyed in SUPL messages and hence may be shown in message flow diagrams but only the major version number and minor version number may be utilized for SUPL version negotiation.
If a recipient of the first SUPL message for a new SUPL session supports a version of SUPL with the same major version number as that indicated in the message the recipient typically will continue the SUPL session normally. The SUPL session may be continued even if the supported minor version number is not the same as that indicated in the message (e.g., if the recipient is the SET, it establishes a secure IP connection to the sending SLP and then returns a SUPL message). However, if such a recipient does not support any version of SUPL with the same major version number as that indicated in the received SUPL message, it typically returns a SUPL END message to a sender of the SUPL message indicating a protocol error (i.e., SUPL version not supported) and indicating the version of SUPL that it does support. If such a sender supports this version, it can restart the SUPL session using this SUPL version. Otherwise, the session attempt typically fails.